
#ifndef _BAPPLICATION_H_
#define _BAPPLICATION_H_

#include <BString>
#include <BObject>

namespace BWE
{
	class BFont;
	class BPalette;
	class BTranslator;

	class BWEAPI BApplication
	{
	public:
		BApplication();
		BApplication(int argc, char** argv);
		~BApplication();

		static void setFont(BFont* font);
		static BFont* font();

		static void setPalette(BPalette* palette);
		static BPalette* palette();

		static void setTranslator(BTranslator* translator);
		static BTranslator* translator();

		static void setFrequency(int frequency);
		static int frequency();
		static int realFrequency();

		static void done(int code = 0);
		static int code();

		static int execute();

		static void addPluginPath(const BString& pluginPath);
		static void addFontPath(const BString& fontPath);
		static void addDataPath(const BString& dataPath);

		static void removePluginPath(const BString& pluginPath);
		static void removeFontPath(const BString& fontPath);
		static void removeDataPath(const BString& dataPath);

		static void removePluginPath(int index);
		static void removeFontPath(int index);
		static void removeDataPath(int index);

		static int pluginPathCount();
		static int fontPathCount();
		static int dataPathCount();

		static const BString& pluginPath(int index);
		static const BString& fontPath(int index);
		static const BString& dataPath(int index);
	};
}
#endif